﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using TOAlignet;
using BOAlignet;
using System.IO;

namespace WebAlignet.AlignetFiles.PaseProduccion
{
    public partial class RegPaseProduccion : System.Web.UI.Page
    {
        BOSolPaseProduccion boSolPaseProduccion = new BOSolPaseProduccion();
        BODocumentoVerificacion boDocVerificacion = new BODocumentoVerificacion();
        BOComponente boComponente = new BOComponente();
        String savePath = @"c:\temp\uploads\";

        protected void Page_Load(object sender, EventArgs e)
        {
            if (!Page.IsPostBack)
            {
                if (Session["TipoUsuario"] != null && Session["TipoUsuario"].ToString().Equals("ADMFUNCIONAL"))
                {

                    FileUpload1.Enabled = false;
                    FileUpload2.Enabled = false;
                    FileUpload3.Enabled = false;
                    FileUpload4.Enabled = false;
                    txtDescripcion.Enabled = false;
                    txtJustificacion.Enabled = false;
                    txtPasosAntes.Enabled = false;
                    txtPasosDurante.Enabled = false;
                    txtPasosDespues.Enabled = false;
                    txtContingencia.Enabled = false;
                    ddlProyecto.Enabled = false;
                    ddlTipo.Enabled = false;
                    Button1.Enabled = false;
                    
                }

                if (Session["accion"] != null && Session["accion"] == "Modificar")
                {
                    Label1.Text = "Actualizar Solicitud de Pase a Produccion";

                    if (Session["codSolicitud"] != null) {
                        int codigo=Convert.ToInt32(Session["codSolicitud"]);
                        
                        TOSolPaseProduccion solicitud= boSolPaseProduccion.obtenerSolicitud(codigo);
                        txtDescripcion.Text = solicitud.Descripcion;
                        txtJustificacion.Text = solicitud.Justificacion;
                        ddlProyecto.SelectedValue = Convert.ToString(solicitud.CodigoProyecto);
                        ddlTipo.SelectedValue = Convert.ToString(solicitud.Tipo);



                        TODocVerificacion documento= boDocVerificacion.obtenerDocumentoVerificacion(codigo);
                        txtPasosAntes.Text = documento.PasosAntes;
                        txtPasosDespues.Text = documento.PasosDespues;
                        txtPasosDurante.Text = documento.PasosDurante;
                        txtContingencia.Text = documento.Contingencia;

                        List<TOComponente> listaComponente = boComponente.obtenerComponentes(codigo);
                        foreach (TOComponente componente in listaComponente) { 
                        
                            switch (componente.Tipo) 
                            {
                                case 1:
                                    Label3.Text = componente.Archivo;
                                    break;
                                case 2:
                                    Label4.Text = componente.Archivo;
                                    break;
                                case 3:
                                    Label2.Text= componente.Archivo;
                                    break;
                                case 4:
                                    Label5.Text = componente.Archivo;
                                    break;
                            }
                        
                        }
                          

                        
                    
                    }
                
                
                }




            }


        }


        protected void Button1_Click(object sender, EventArgs e)
        {
            if (Session["accion"] != null && Session["accion"].ToString() != "Modificar")
            {
                //Guardando Solicitud
                TOSolPaseProduccion toSolPaseProduccion = new TOSolPaseProduccion();
                toSolPaseProduccion.CodigoUsuario = Convert.ToInt32(Session["CodigoUsuario"].ToString());
                toSolPaseProduccion.CodigoProyecto = Convert.ToInt32(ddlProyecto.SelectedValue);
                toSolPaseProduccion.Descripcion = txtDescripcion.Text;
                toSolPaseProduccion.Justificacion = txtJustificacion.Text;
                toSolPaseProduccion.FechaCreacion = DateTime.Now;
                toSolPaseProduccion.Tipo = Convert.ToInt32(ddlTipo.SelectedValue);
                toSolPaseProduccion.Estado = 1;

                //Guardando Documento
                TODocVerificacion toDocVerification = new TODocVerificacion();
                toDocVerification.Contingencia = txtContingencia.Text;
                toDocVerification.PasosAntes = txtPasosAntes.Text;
                toDocVerification.PasosDurante = txtPasosDurante.Text;
                toDocVerification.PasosDespues = txtPasosDespues.Text;
                toDocVerification.Estado = 1;

                boSolPaseProduccion.insertarSolPaseProduccion(toSolPaseProduccion, toDocVerification);

                string ruta = savePath + toSolPaseProduccion.Codigo + "/";
                if (!Directory.Exists(ruta))
                {
                    Directory.CreateDirectory(ruta);

                }
                if (FileUpload1.HasFile)
                {
                    String fileName = FileUpload1.FileName;
                    string filepath = ruta + fileName;
                    FileUpload1.SaveAs(filepath);
                    TOComponente script = new TOComponente();
                    script.Archivo = fileName;
                    script.CodigoSolPaseProduccion = toSolPaseProduccion.Codigo;
                    script.Ruta = filepath;
                    script.Tipo = 3;
                    script.Estado = 1;

                    boComponente.insertarComponente(script);
                }
                if (FileUpload2.HasFile)
                {
                    String fileName = FileUpload2.FileName;
                    string filepath = ruta + fileName;
                    FileUpload2.SaveAs(filepath);
                    TOComponente script = new TOComponente();
                    script.Archivo = fileName;
                    script.CodigoSolPaseProduccion = toSolPaseProduccion.Codigo;
                    script.Ruta = filepath;
                    script.Tipo = 1;
                    script.Estado = 1;

                    boComponente.insertarComponente(script);
                }
                if (FileUpload3.HasFile)
                {
                    String fileName = FileUpload3.FileName;
                    string filepath = ruta + fileName;
                    FileUpload3.SaveAs(filepath);
                    TOComponente script = new TOComponente();
                    script.Archivo = fileName;
                    script.CodigoSolPaseProduccion = toSolPaseProduccion.Codigo;
                    script.Ruta = filepath;
                    script.Tipo = 2;
                    script.Estado = 1;

                    boComponente.insertarComponente(script);
                }

                if (FileUpload4.HasFile)
                {
                    String fileName = FileUpload4.FileName;
                    string filepath = ruta + fileName;
                    FileUpload4.SaveAs(filepath);
                    TOComponente script = new TOComponente();
                    script.Archivo = fileName;
                    script.CodigoSolPaseProduccion = toSolPaseProduccion.Codigo;
                    script.Ruta = filepath;
                    script.Tipo = 4;
                    script.Estado = 1;

                    boComponente.insertarComponente(script);
                }
            }
            else
            { 
            if (Session["codSolicitud"] != null) {
                int codigo=Convert.ToInt32(Session["codSolicitud"]);

                TOSolPaseProduccion solicitud = boSolPaseProduccion.obtenerSolicitud(codigo);
                solicitud.CodigoProyecto = Convert.ToInt32(ddlProyecto.SelectedValue);
                solicitud.Descripcion = txtDescripcion.Text;
                solicitud.Justificacion = txtJustificacion.Text;
                solicitud.Tipo = Convert.ToInt32(ddlTipo.SelectedValue);
                boSolPaseProduccion.actualizarSolicitud(solicitud);



                TODocVerificacion documento = boDocVerificacion.obtenerDocumentoVerificacion(codigo);
                documento.Contingencia = txtContingencia.Text;
                documento.PasosAntes = txtPasosAntes.Text;
                documento.PasosDurante = txtPasosDurante.Text;
                documento.PasosDespues = txtPasosDespues.Text;
                boDocVerificacion.actualizarDocumento(documento);

                string ruta = savePath + codigo + "/";
                if (!Directory.Exists(ruta))
                {
                    Directory.CreateDirectory(ruta);

                }
                if (FileUpload1.HasFile)
                {
                    String fileName = FileUpload1.FileName;
                    string filepath = ruta + fileName;
                    FileUpload1.SaveAs(filepath);
                    TOComponente script = new TOComponente();
                    script.Archivo = fileName;
                    script.CodigoSolPaseProduccion = codigo;
                    script.Ruta = filepath;
                    script.Tipo = 3;
                    script.Estado = 1;

                    boComponente.actualizarComponente(script);
                }
                if (FileUpload2.HasFile)
                {
                    String fileName = FileUpload2.FileName;
                    string filepath = ruta + fileName;
                    FileUpload2.SaveAs(filepath);
                    TOComponente script = new TOComponente();
                    script.Archivo = fileName;
                    script.CodigoSolPaseProduccion = codigo;
                    script.Ruta = filepath;
                    script.Tipo = 1;
                    script.Estado = 1;

                    boComponente.actualizarComponente(script);
                }
                if (FileUpload3.HasFile)
                {
                    String fileName = FileUpload3.FileName;
                    string filepath = ruta + fileName;
                    FileUpload3.SaveAs(filepath);
                    TOComponente script = new TOComponente();
                    script.Archivo = fileName;
                    script.CodigoSolPaseProduccion = codigo;
                    script.Ruta = filepath;
                    script.Tipo = 2;
                    script.Estado = 1;

                    boComponente.actualizarComponente(script);
                }

                if (FileUpload4.HasFile)
                {
                    String fileName = FileUpload4.FileName;
                    string filepath = ruta + fileName;
                    FileUpload4.SaveAs(filepath);
                    TOComponente script = new TOComponente();
                    script.Archivo = fileName;
                    script.CodigoSolPaseProduccion = codigo;
                    script.Ruta = filepath;
                    script.Tipo = 4;
                    script.Estado = 1;

                    boComponente.actualizarComponente(script);
                }
            
            
            }

            
            }

            Response.Redirect("http://localhost:3182/AlignetFiles/RegistrarListSolPaseProduccion.aspx");
            //Guardando Componentes
              //Response.Redirect(
            
            
               // String savePath = @"c:\temp\uploads\";
        }

        protected void Button2_Click(object sender, EventArgs e)
        {
            Response.Redirect("http://localhost:3182/AlignetFiles/RegistrarListSolPaseProduccion.aspx");
        }
    }
}